
#ifndef IFormatProvider_h
#define IFormatProvider_h

// Riccsson includes.
#include <Typedef.h>
#include <Defines.h>
#include <System/Object.h>

namespace Riccsson
{
	namespace System
	{
		// Forward declerations.
		class Type;

		// Summary:
		//     Provides a mechanism for retrieving an object to control formatting.
		//[ComVisible(true)]
		interface IFormatProvider
		{
			// Summary:
			//     Returns an object that provides formatting services for the specified type.
			//
			// Parameters:
			//   formatType:
			//     An object that specifies the type of format object to return.
			//
			// Returns:
			//     An instance of the object specified by formatType, if the System.IFormatProvider
			//     implementation can supply that type of object; otherwise, null.
			virtual GC_PTR<object> GetFormat(Type* formatType) = 0;
		};
	}
}

#endif // ICLONEABLE_H